import { Global, Module } from '@nestjs/common';
import { CommonController } from './common.controller';
import { RemoveDataService as removeDataService } from './services/remove-data.service';
import { MatchModule } from '../match/match.module';
import { GroupModule } from '../group/group.module';
import { StageEventModule } from '../stage-event/stage-event.module';
import { GameModule } from '../game/game.module';
import { GroupPlayerScoreModule } from '../group-player-score/group-player-score.module';
import { StageModule } from '../stage/stage.module';
import { RedisService } from './services/redis.service';
import { CategoryModule } from '../category/category.module';
import { EventToPlayerModule } from '../event-to-player/event-to-player.module';
import { EventModule } from '../event/event.module';
import { PlayerSignupModule } from '../player-signup/player-signup.module';
import { TournamentModule } from '../tournament/tournament.module';
import { CopyDataService } from './services/copy-data.service';
import { StageDetailService } from './stage-detail/stage-detail.service';
import { StageDetailController } from './stage-detail/stage-detail.controller';
import { MatchEndService } from './match-end/match-end.service';
import { MatchEndController } from './match-end/match-end.controller';
import { MatchGiveUpService } from './match-end/match-giveup.service';
import { MatchReadyService } from './match-ready/match-ready.service';
import { MatchReadyController } from './match-ready/match-ready.controller';
import { StageCreateController } from './stage-create/stage-create.controller';
import { StageCreateService } from './stage-create/stage-create.service';

@Global()
@Module({
  imports: [
    GroupModule,
    StageEventModule,
    GroupPlayerScoreModule,
    MatchModule,
    StageModule,
    GameModule,
    EventModule,
    EventToPlayerModule,
    PlayerSignupModule,
    CategoryModule,
    TournamentModule,
  ],
  controllers: [
    CommonController,
    MatchEndController,
    MatchReadyController,
    StageDetailController,
    StageCreateController,
  ],
  providers: [
    removeDataService,
    RedisService,
    CopyDataService,
    StageDetailService,
    StageCreateService,
    MatchEndService,
    MatchGiveUpService,
    MatchReadyService,
  ],
  exports: [
    // removeDataService,
    RedisService,
    // CopyDataService,
    // StageDetailService,
    // MatchEndService,
  ],
})
export class CommonModule {}
